<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if gt IE 8]><!-->  <html class="no-js" lang="en"> <!--<![endif]-->
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
    <title>Android で SQLite3 を利用する</title>
    
    <meta name="description" content="Use SQLite3 in Android">
    <meta name="author" content="KOZAKI Tsuneaki">
    <meta name="viewport" content="width=1024, user-scalable=no">
    
    <!-- Core and extension CSS files -->
    <link rel="stylesheet" href="core/deck.core.css">
    <link rel="stylesheet" href="extensions/goto/deck.goto.css">
    <link rel="stylesheet" href="extensions/menu/deck.menu.css">
    <link rel="stylesheet" href="extensions/navigation/deck.navigation.css">
    <link rel="stylesheet" href="extensions/status/deck.status.css">
    <link rel="stylesheet" href="extensions/hash/deck.hash.css">
    
    <!-- Theme CSS files (menu swaps these out) -->
    <link rel="stylesheet" id="style-theme-link" href="themes/style/web-2.0.css">
    <link rel="stylesheet" id="transition-theme-link" href="themes/transition/horizontal-slide.css">
    
    <!-- Custom CSS just for this page -->
    <link rel="stylesheet" href="custom.css">
    
    <script src="modernizr.custom.js"></script>
  </head>

  <body class="deck-container">

    <section class="slide">
      <h1>Androidでデータベース利用</h1>
    </section>

    <section class="slide">
      <h2>講師紹介</h2>
      <ul>
        <li>しゃべる人  小崎</li>
        <li class="slide" style="list-style:none;">さすらいのＣＯＢＯＬプログラマ</li>
        <li>コード書く人  宇野</li>
        <li class="slide" style="list-style:none;">史上最強のアシスタント</li>
      </ul>
    </section>

    <section class="slide">
      <h2>謝辞</h2>
      <p>本日は参加いただきありがとうございました</p>
      <p>ちょこっとアプリ塾は開かれた塾を目指しています</p>
      <img src="img/gate.jpg" class="slide" alt="" />
    </section>

    <section class="slide">
      <h2>今日のお題</h2>
      <p>Android アプリでデータベースを利用する方法</p>
      <p>ほんのさわりだけです。サーセン。</p>
      <div class="slide">
        <img src="img/sa-sen.jpg" class="" alt="" width="50%"/>
      </div>
    </section>

    <section class="slide">
      <h2>アジェンダ</h2>
      <table id="agenda">
        <tr>
          <th></th><th>タイトル</th><th>時間</th>
        </tr>
        <tr>
          <td style="text-align:right;">1</td>
          <td>開発環境ない人向けチュートリアル</td>
          <td style="text-align:right;">30分</td>
        </tr>
        <tr>
          <td style="text-align:right;">2</td>
          <td>Android からデータベースを扱う方法</td>
          <td style="text-align:right;">3分</td>
        </tr>
        <tr>
          <td style="text-align:right;">3</td>
          <td>今日説明すること</td>
          <td style="text-align:right;">1分</td>
        </tr>
        <tr>
          <td style="text-align:right;">4</td>
          <td>今日説明しないこと</td>
          <td style="text-align:right;">1分</td>
        </tr>
        <tr>
          <td style="text-align:right;">5</td>
          <td>ハンズオンチュートリアル</td>
          <td style="text-align:right;">45分</td>
        </tr>
      </table>
      <br />
      <div class="slide">
      <p>今日もひたすらコーディングします。(宇野さんが！)<br />
      やったね。ヽ(ﾟ▽ﾟ*)乂(*ﾟ▽ﾟ)ﾉ</p>
      </div>
    </section>

    <section class="slide">
      <h2 style="font-family:serif;text-align:center;">CAUTION!</h2>
      <div style="height:150px;">
        <img src="img/this_is_sparta.jpg" class="" alt="" align="left" style="left:10px;"/>
        <p style="padding:1em;margin-left:2em">今日もスパルタ方式です。<br />スパルタ万歳！</p>
      </div>
      <br />
      <ol>
        <div class="slide">
        <li>
          <p style="margin-bottom:15px">サンプルコードの提供はありません。スライドを参考に<span style="color:red;">自力でコーディング</span>して下さい。</p>
        </li>
        </div>
        <div class="slide">
        <li>
          <p style="margin-bottom:10px">わからない点、疑問点あれば<span style="color:red;">大きな声</span>で発言</p>
          <p style="margin-bottom:10px">隣の人にヒソヒソ聞かず不明点を全員で共有</p>
          <p>都度止めないと( ﾟдﾟ ) ﾎﾟｶｰﾝ な感じで終わるよ</p>
        </li>
        </div>
      </ol>
    </section>

    <section class="slide">
      <h1>では はじまります</h1>
    </section>

    <section class="slide">
      <h2>環境構築</h2>
      <p>コーディングするには環境が必要です。</p>
    </section>
    
    <section class="slide">
      <h2>安心のマンツーマン</h2>
      <table id="pair">
        <tr>
          <th colspan="3">晴海</th>
          <th colspan="3">名古屋</th>
          <th colspan="3">土佐堀</th>
        </tr>
        <tr>
          <th>塾生</th><th>ゲスト</th><th></th>
          <th>塾生</th><th>ゲスト</th><th></th>
          <th>塾生</th><th>ゲスト</th><th></th>
        </tr>
        <tr>
          <td>後閑　勇登</td><td>藤田　敬太</td><td>×</td>
          <td>遠藤　冴己</td><td>岩田　俊亮</td><td>×</td>
          <td>佐野　寛</td>  <td></td>          <td></td>
        </tr>
        <tr>
          <td>加藤　健成</td><td>綾部　友亮</td><td>×</td>
          <td></td>          <td></td>          <td></td>
          <td>関野　彬史</td><td>藤田　尚</td>  <td>×</td>
        </tr>
        <tr>
          <td>三嶋　正弘</td><td>宗定　洋平</td><td>×</td>
          <td></td>          <td></td>          <td></td>
          <td>宇野　修一</td><td></td>          <td></td>
        </tr>
        <tr>
          <td>森岡　創一</td><td>長瀬　耕世</td><td>○</td>
          <td></td>          <td></td>          <td></td>
          <td>小崎　玄顕</td><td></td>          <td></td>
        </tr>
        <tr>
          <td>山口　達也</td><td>佐藤　貴比呂</td><td>○</td>
          <td></td>          <td></td>          <td></td>
          <td>清水　翔太</td><td></td>          <td></td>
        </tr>
        <tr>
          <td colspan="2">長谷川　敦司</td>     <td></td>
          <td></td>          <td></td>          <td></td>
          <td>畑　照明</td>  <td></td>          <td></td>
        </tr>
      </table>
      <br />
      <p>席を移動して隣同士になって下さい</p>
    </section>

    <section class="slide">
      <h1>環境構築スタート</h1>
      <h3 class="slide">時間は30分</h3>
    </section>

    <section class="slide">
      <h2>AndroidでDBを扱う</h2>
      <p>だいたい以下のような選択肢があります</p>
      <ol>
        <li class="slide">
          <p style="margin-bottom:5px;">
            自前でデータベースの作成＆管理を全てする
          </p>
          <p style="margin-bottom:10px;">本日説明するこがこのパターンです。</p>
        </li>
        <li class="slide">
          <p style="margin-bottom:15px">
            事前に作成したデータベースをインストール、Androidは利用だけする...(例)辞書データ
          </p>
        </li>
        <li class="slide">
          <p style="margin-bottom:15px;">
            データベースを扱うバックエンドサーバーを用意して、Androidは利用だけする
          </p>
          <!-- <ul> -->
          <!--   <li style="list-style:square;">Webアプリを別に作成して、データを JSON などでやり取りする</li> -->
          <!--   <li style="list-style:square;">データベースのことはサーバーにお任せ、代わりにネットワーク関連で考えることが増える</li> -->
          <!-- </ul> -->
        </li> 
      </ol>
    </section>

    <section class="slide">
      <h2>今日説明すること</h2>
      <ul>
        <li>SQLite3の説明</li>
        <li>データベースを用意、初期データを投入</li>
        <li>SELECT の結果を画面に表示する方法</li>
      </ul>
      <div class="slide">
      <img src="img/finished_appli.png" alt="" width="70%"/>
      <p>これだけ。</p>
      </div>
    </section>
    
    <section class="slide">
      <h2>今日説明しないこと</h2>
      <p>それ以外</p>
      <ul class="slide">
        <li>Android開発環境のセットアップ</li>
        <li style="list-style:none;margin-bottom:10px;">第１回でやった</li>
        <li>画面レイアウトの作成方法</li>
        <li style="list-style:none;margin-bottom:10px;">GUIでとにかく置け</li>
        <li>リレーショナルデータベースについて</li>
        <li style="list-style:none;margin-bottom:10px;">SQLの書き方とか</li>
      </ul>
      <p class="slide" style="font-size:180%;margin-top:-4em;text-align:center;background:white;">などのあらゆることを<br />説明しません</p>
    </section>
    
    <section class="slide">
  <h2>SQLite3とは</h2>
  <p>Androidアプリケーションからデータベースを利用する場合、そのエンジンはSQLite3一択です。</p>
  <p>その概要をば、本家サイトから</p>
  <div class="slide">
  <blockquote cite="http://www.sqlite.org/about.html">
    <p>
      SQLite is a in-process library that implements a self-contained,
      serverless, zero-configuration, transactional SQL database engine.
    </p>
    <p>
      The code for SQLite is in the public domain and is thus free for use for
      any purpose, commercial or private.
    </p>
    <p>
      SQLite is currently found in more applications than we can count,
      including several high-profile projects.
    </p>
    <p align="right"><cite>"About SQLite" in the official site</cite></p>
  </blockquote>
  </div>
  <p class="slide" style="font-size:200%">？？？</p>
</section>

<section class="slide">
  <h2>適当に翻訳</h2>
  <div class="slide">
  <blockquote cite="http://www.sqlite.org/about.html">
    <p>
      SQLiteは現在も活発に開発が続けられている、自己完結、サーバ不要、設定不要、トランザクションをサポートしたデータベースエンジンです。
    </p>
    <p>
      SQLiteのコードはパブリックドメインにあり、商用あるいは非商用、いかなる目的で使用するのも自由です。
    </p>
    <p>
      SQLiteは現在、いくつかの良く知られたプロダクト(例えばDropboxやskypeのような)を含め、数え切れないほどのアプリケーションで利用されています。
    </p>
    <p align="right"><cite>SQLite オフィシャルサイト</cite></p>
  </blockquote>
  </div>
  <p class="slide">さすがの google translate</p>
</section>

<section class="slide">
  <h2>SQLite3の特徴(公式サイトより)</h2>
  <ul>
    <li>Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.</li>
    <li>Zero-configuration - <span style="color:red;">no setup or administration needed.</span></li>
    <li>Implements most of SQL92. (<a href="http://www.sqlite.org/omitted.html">Features not supported</a>)</li>
    <li>A complete database is stored in a <span style="color:red;">single cross-platform disk file.</span></li>
    <li>Supports terabyte-sized databases and gigabyte-sized strings and blobs. (See limits.html.)</li>
    <li>Small code footprint: less than 350KiB fully configured or less than 200KiB with optional features omitted.</li>
    <li>Faster than popular client/server database engines for most common operations.</li>
    <li>Simple, easy to use API.</li>
    <li>Written in ANSI-C. TCL bindings included. Bindings for dozens of other languages available separately.</li>
    <li>Well-commented source code with 100% branch test coverage.</li>
    <li>Available as a single ANSI-C source-code file that you can easily drop into another project.</li>
    <li>etc...</li>
  </ul>
  <p class="slide">面倒なので、もう訳さんよ</p>
</section>

<section class="slide">
  <h2>作ろうとしているテーブル</h2>
  <p>サンプルなのでテーブルは非常にシンプルです。</p>
  <p>データベース名 : test.db</p>
  
  <div align="left" style="margin: 1em;">
    <p style="margin-bottom:0.2em">テーブル名 : people</p>
    <table id="persons">
      <tr>
        <th>カラム名</th><th>タイプ</th>
      </tr>
      <tr>
        <td>name(氏名)</td><td>VARCHAR</td>
      </tr>
      <tr>
        <td>age(年齢)</td><td>INTEGER</td>
      </tr>
    </table>
  </div> 
  <p>なんと、テーブルは１個だけ！</p>
</section>

    <section class="slide">
      <h2>ハンズオンの段取り </h2>
      <ol>
        <li>
          アプリケーションの雛形を作成
        </li>
        <li>
          Activity から SampleDBHelper を経由してデータベースにアクセスする方法について説明
        </li>
        <li>
          SampleDBHelpere クラスは自前で作成する必要があるので、これをどうやって作成すればよいかを説明
        </li>
      </ol>
    </section>

    <section class="slide">
      <h2>1.アプリケーションの雛形を作成</h2>
      <p>もう説明不要ですよね。</p>
      <img src="img/new_android_project.png" class="" alt="" />
    </section>

    <section class="slide">
      <h2>1.アプリケーションの雛形を作成</h2>
      <p>好きに作成して下さい</p>
      <img src="img/new_android_project_name.png" class="" alt=""  width="70%"/>
    </section>

    <section class="slide">
      <h2>1.アプリケーションの雛形を作成</h2>
      <p>ターゲットは Android 2.3 にしとくか</p>
      <img src="img/new_android_project_build_target.png" class="" alt=""  width="70%"/>
      <p class="slide">と思ったら、2.2がJSOL塾のターゲットだった。読み替えて下さい</p>
    </section>

    <section class="slide">
      <h2>1.アプリケーションの雛形を作成</h2>
      <p>パッケージ名とかも自分のプロジェクト用に付けるんだよ。</p>
      <img src="img/new_android_project_property.png" class="" alt=""  width="70%"/>
      <p><font style="color:red;">注意</font>：kokou は小崎のtwitter id だから使っちゃダメだよ。</p>
    </section>

    <section class="slide">
      <h2>出来たら、まずは稼動確認</h2>
      <img src="img/execute_application_small.png" class="" alt="" width="70%"/>
    </section>

    <section class="slide">
      <h2>動いた？</h2>
      <img src="img/initial_application.png" class="" alt=""  width="70%"/>
      <p class="slide">動いてるはず！</p>
    </section>

    <section class="slide">
      <h1>動かない人のためのサポートタイム</h1>
    </section>

    <section class="slide">
      <h2>ここで重要な注意</h2>
      <p>起動したエミュレータは閉じてはいけません</p>
      <img src="img/dame_zettai.jpg" class="slide" alt="" />
    </section>

    <section class="slide">
      <h2>適当に画面を作成</h2>
      <p>/&lt;project top&gt;/res/layout/main.xml を編集</p>
      <img src="img/simple_display.png" class="" alt=""  width="38%"/>
      <p class="slide">とりあえず、GUI 操作でボタンを追加して次のページへGO!</p>
    </section>

    <section class="slide">
      <h2>前の画面の作成要領</h2>
      <p style="margin-bottom:10px;">GUI で該当のパーツを右クリックして設定。</p>
      <ul style="margin-bottom:10px;line-height:0.8;">
        <li>デフォルトで張り付いているTextViewを編集</li>
        <ol>
          <li>Edit ID... ⇒ resultView</li>
          <li>Edit Text... ⇒ Display Table Contents</li>
          <li>Layout Height ⇒ Match Parent</li>
          <li style="margin-bottom:10px;">Property ⇒ Layout weight ⇒ 10</li>
        </ol>
        <li>「Display」ボタンを追加</li>
        <ol>
          <li>Edit ID... ⇒ displayButton</li>
          <li>Edit Text... ⇒ Display</li>
          <li>Layout Width ⇒ Match Parent</li>
          <li>Property ⇒ Layout weight ⇒ 1</li>
          <li style="margin-bottom:10px;">Property ⇒ OnClick... ⇒ displayTable</li>
        </ol>
      </ul>
    </section>

<section class="slide">
  <h2>また、動くか確認</h2>
  <p style="text-align:center;font-size:200%;margin-top:5em;">画像は省略</p>
</section>


    <section class="slide">
      <h2>ハンズオンの段取り </h2>
      <ol>
        <li style="color:silver;">
          アプリケーションの雛形を作成
        </li>
        <li>
          Activity から SampleDBHelper を経由してデータベースにアクセスする方法について説明
        </li>
        <li style="color:silver;">
          SampleDBHelpere クラスは自前で作成する必要があるので、これをどうやって作成すればよいかを説明
        </li>
      </ol>
    </section>

<section class="slide">
  <h2>SQLiteSampleActivity.java</h2>
  <pre style="font-size:60%;padding-bottom:0;">
public class SQLiteSampleActivity extends Activity {    <font color="#00f">
  private TextView view;
  private SQLiteDatabase db;  </font>
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);    <font color="#00f">
    view = (TextView)findViewById(R.id.resultView);
    db = (new SampleDBHelper(this)).getReadableDatabase();    </font>
  }
  public void displayTable(View v) {    <font color="#00f">
    Cursor c = db.query("people", new String[] {"name", "age"},
                         null, null, null, null, null);
    view.setText("Table contents\n");
    view.append("--------------------------------------\n");
      while (c.moveToNext()) {
        view.append(String.format("%s\t%d\n",
                                  c.getString(0), c.getInt(1)));
      }
      c.close();    </font>
  }
}
  </pre>
</section>

<section class="slide">
  <h2>ちょっと解説</h2>
  <dl>
    <dt>onCreate()</dt>
    <dd>
      変数viewとdbを初期化
    </dd>

    <dt>displayTable()</dt>
    <dd>
       DisplayボタンのプロパティonClickに指定したメソッド
    </dd>
  </dl>
  <hr />

  <ul style="margin-left:1em;margin-top:-1em;">
    <li>viewはレイアウトmain.xmlから取得。第１回の勉強会を思い出せ</li>
    <li>dbは次で作成するSampleDBHelperから取得。いわゆるFactoryパターン</li>
    <li style="list-style:none;">Eclipseが「SampleDBHelper作れ」とうるさいけどしばし待て</li>
    <li>動的にコールバックを切り替えないなら、onClickプロパティを使った方が簡潔に書ける</li>
    <li>Android SDKがDBアクセスを若干カプセル化</li>
    <li style="list-style:none;">
      "people":テーブル名、SELECT したいカラム: {"name", "age"}
    </li>
    <li style="list-style:none;">
      SQLiteDatabase#query() の他の引数は予想通り、WHERE句とか ORDER BY のためのオプション。
      詳しくは<a href="http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html">マニュアル参照</a>
    </li>
    <li>dbはクローズしてはならない(<a href="http://d.hatena.ne.jp/ukiki999/20100524/p1">参考サイト</a>)</li>
  </ul>

</section>

    <section class="slide">
      <h2>ハンズオンの段取り </h2>
      <ol>
        <li style="color:silver;">
          アプリケーションの雛形を作成
        </li>
        <li style="color:silver;">
          Activity から SampleDBHelper を経由してデータベースにアクセスする方法について説明
        </li>
        <li>
          SampleDBHelpere クラスは自前で作成する必要があるので、これをどうやって作成すればよいかを説明
        </li>
      </ol>
    </section>

<section class="slide">
  <h2>SampleDBHelper.java</h2>
  <p style="margin-bottom:0.2em;">先のSqliteSampleActivity.javaで文句を言われていた所を修正 <br />
  Eclipseが「クラス作れ」て言うから作成。親クラスはSQLiteOpenHelper</p>
  <pre style="font-size:60%;padding-bottom:0;">
public class SampleDBHelper extends SQLiteOpenHelper {
  public SampleDBHelper(Context context) { <font color="#00f">
    super(context, "test.db", null, 1);</font>
  }
  @Override
  public void onCreate(SQLiteDatabase db) { <font color="#00f">
    db.execSQL(
      "CREATE TABLE people (" +
      "  id INTEGER PRIMARY KEY AUTOINCREMENT, " +
      "  name VARCHAR, " +
      "  age INTEGER);"
    );</font><font color="#f00">
    insertInitialValues(db); </font>
  }
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldv, int newv) {
  }
  // ... 続く！
}
  </pre>
</section>

<section class="slide">
  <h2>ちょっと解説</h2>
  <dl>
    <dt>SampleDBHelper()コンストラクタ</dt>
    <dd>
      contextに紐づけられてSQLiteOpenHelperを作成する
    </dd>
    <dd>
      接続するDBは"test.db"、nullにするとメモリ上で動作
    </dd>
    <dd>
      第3引数はよくわかんない。CursorFactory?
    </dd>
    <dd>
      第4引数がデータベースのバージョン
    </dd>
    <dt>onCreate()</dt>
    <dd>
      SQLiteOpenHelper作成時にDBが存在しない時に実行される
    </dd>
    <dd>
      ここで CREATE TABLE 文を発行。テーブルを作成している
    </dd>
    <dd>
      初期データの投入 insertInitialValues() は次。必須ではない
    </dd>
    <dt>onUpgrade()</dt>
    <dd>
      SQLiteOpenHelper作成時にDBのバージョンが変更されると実行
    </dd>
    <dd>
      マイグレーションコードが必要だが、アプリケーションリリースまでは空でよいだろう
    </dd>
  </dl>
</section>

<section class="slide">
  <h2>SampleDBHelper.java</h2>
  <p>レコードを INSERT するコード</p>
  <pre style="font-size:60%;padding-bottom:0;">
public class SampleDBHelper extends SQLiteOpenHelper {
  // ... 続き！
  private void insertInitialValues(SQLiteDatabase db) {<font color="#00f">
    ContentValues yamada = new ContentValues();
    yamada.put("name", "山田 浩一郎");
    yamada.put("age", 25);
    db.insert("people", null,yamada); </font>
    // ... 好きなだけ追加
  }
}
  </pre>
  <ul>
    <li>SQLiteDatabase#insert() と <a href="http://developer.android.com/reference/android/content/ContentValues.html">ContentValues のマニュアル</a>参照</li>
    <li>ContentValues マニュアル読んでもよくわからんな。java.util.Map&lt;String, Object&gt; のようなモンだと思っておこう</li>
  </ul>

</section>

<section class="slide">
  <h1>コードに文句がある人は自前で修正してね</h1>
</section>

<section class="slide">
  <h1>早くも完成！</h1>
</section>

<section class="slide">
  <h2>動きましたか？</h2>
  <img src="img/finished_appli.png" class="" alt="" />
</section>

<section class="slide">
  <h1>動かない人がいる場合のサポートタイム２</h1>
</section>


<section class="slide">
  <h2>お疲れさまでした</h2>
  <div class="slide" style="text-align: center;margin:5em;">
    <h2 align="center" style="color:#f0f;">第二部  完！</h2>
    <img src="img/pekori.jpg" class="" alt="<(_ _)>" />
  </div>
</section>

<section class="slide">
  <h2>第三部  課題</h2>
  <p>余った時間を利用して次のような課題に挑戦してみましょう。</p>
  <ol>
    <li>テーブルの表示をちゃんとしたものにする</li>
    <li>レコードの新規登録をする画面を追加する</li>
    <li>クリックすると、編集用の画面に遷移してレコードを編集する</li>
    <li>長押しすると、確認ダイアログを表示してレコードを削除する</li>
  </ol>
</section>

<section class="slide">
  <h2>ListViewでテーブルの内容を表示する</h2>
  <p>ListViewを使うと、一覧表示がそれらしい雰囲気になります</p>
  <img src="img/list_view.png" class="" alt="" />
  <h3 class="slide">難易度 : 普通</h3>
</section>

<section class="slide">
  <h2>レコードを新規登録できるようにする</h2>
  <p>登録用の画面を作りましょう</p>
  <img src="img/new_person_button.png" class="" alt="" />
</section>

<section class="slide">
  <h2>もう一枚画面を作って遷移する</h2>
  <img src="img/new_person_view.png" class="" alt="" />
</section>

<section class="slide">
  <h2>登録したら元の画面に戻る</h2>
  <img src="img/new_person_input.png" class="" alt="" />
</section>

<section class="slide">
  <h2>レコードが追加されているね</h2>
  <img src="img/list_persons_view.png" class="" alt="" />
  <p>…て感じ。</p>
  <h3 class="slide">難易度 : 易</h3>
</section>

<section class="slide">
  <h2>一覧から行をクリックして編集する</h2>
  <p>こんどは好きな行をクリック</p>
  <img src="img/edit_person.png" class="" alt="" />
</section>

<section class="slide">
  <h2>編集画面に遷移</h2>
  <p>新規登録と同じ画面やん。。。</p>
  <img src="img/edit_view.png" class="" alt="" />
  <p>この後の動きも同じ。（`・ω・´）ｷﾘｯ</p>
  <h3 class="slide">難易度 : 普通</h3>
</section>

<section class="slide">
  <h2>一覧から行を長押しして削除する</h2>
  <p>こんどは長めに押す。だんだんエミュレータでは辛くなってきましたね</p>
  <img src="img/long_press_person.png" class="" alt="" />
</section>

<section class="slide">
  <h2>確認ダイアログを出す</h2>
  <p>長押しで何をするかユーザーにわからんので説明のダイアログを出す</p>
  <img src="img/confirm_dialog.png" class="" alt="" />
</section>

<section class="slide">
  <h2>削除されていることを確認</h2>
  <p>OK を押すとレコードが削除されている</p>
  <img src="img/complete_to_delete.png" class="" alt="" />
  <h3 class="slide">難易度 : 普通</h3>
</section>

<section class="slide">
  <h2>サンプルコード</h2>
  <p>実はある</p>
  <p>googlecode:<a href="http://code.google.com/p/sqlite-android-sample/">sqlite-android-sample</a></p>
  <h2 align="center" style="color:#f0f;">第三部  完！</h2>
</section>

<section class="slide">
  <h1>おしまい</h1>
</section>

<a href="#" class="deck-prev-link" title="Previous">&#8592;</a>
<a href="#" class="deck-next-link" title="Next">&#8594;</a>

<p class="deck-status">
  <span class="deck-status-current"></span>
  /
  <span class="deck-status-total"></span>
</p>

<form action="." method="get" class="goto-form">
  <label for="goto-slide">Go to slide:</label>
  <input type="number" name="slidenum" id="goto-slide">
  <input type="submit" value="Go">
</form>

<a href="." title="Permalink to this slide" class="deck-permalink">#</a>


<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="jquery-1.6.4.min.js"><\/script>')</script>

  <!-- Deck Core and extensions -->
  <script src="core/deck.core.js"></script>
  <script src="extensions/menu/deck.menu.js"></script>
  <script src="extensions/goto/deck.goto.js"></script>
  <script src="extensions/status/deck.status.js"></script>
  <script src="extensions/navigation/deck.navigation.js"></script>
  <script src="extensions/hash/deck.hash.js"></script>

  <!-- Specific to this page -->
  <script src="custom.js"></script>

</body>
</html>
